Introducción

Este proyecto se enmarca en el sector cinematográfico ya que se utilizan datos generados por la plataforma IMBd, siendo esta una base de datos en línea que permite acceder a información relacionada con películas, programas de televisión, eventos en vivo, entre otros.El tráfico de IMBD es de aproximadamente 100 millones de usuarios al mes, además cuenta con un sistema de calificación de películas donde los diferentes miembros de la industria y usuarios pueden votar sólo con estar registrados.

Para el procesamiento adecuado de los datos se hará un proceso de limpieza donde se eliminarán aquellos registros considerados como erróneos o nulos, se mantendrán los campos que van a ser usados y estos se transformarán en caso de que sea necesario para realizar el análisis descriptivo de la información.

Finalmente, el objetivo final será determinar el género más votado al cabo de 5 años utilizando un algoritmo de Machine Leaning de aprendizaje supervisado de tipo regresión.

Definición del Problema:

Es difícil identificar a simple vista tendencias en la votación de los usuarios de la plataforma, por este motivo Se busca determinar a traves del análisis de datos el género más votado por los usuarios de IMBD al cabo de 5 años

Justificación:

La industria cinematográfica fue una de las más afectadas por la pandemia, por esto el pronosticar el género de película más visto de los usuarios de IMBd puede ayudar a esta industria en la toma de decisiones al invertir en un nuevo proyecto en un género que se ha probado que gusta y evitando generar perdidas por producciones no rentables.

Fuentes:

IMDB:Es una fuente autorizada de contenido de películas, televisión y celebridades. Publican nuevos avances, actualizaciones de casting, fotos, curiosidades, noticias de la industria y más.

LINK IMDB: https://www.imdb.com/?ref_=nv_home

Logo:

Hipótesis:

A continuación se cargan los paquetes necesarios para el análisis:

#Se importan librerías: 

library(tidyverse)
## -- Attaching packages --------------------------------------- tidyverse 1.3.1 --
## v ggplot2 3.3.5     v purrr   0.3.4
## v tibble  3.1.6     v dplyr   1.0.7
## v tidyr   1.1.4     v stringr 1.4.0
## v readr   2.1.1     v forcats 0.5.1
## -- Conflicts ------------------------------------------ tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag()    masks stats::lag()
library(ggplot2)
library(readxl)
library(DT)

Estructura de la Base de datos inicial

Ahora se importa la base de datos y se muestra como es la base de datos que se tiene inicialmente:

# Carga de datos:

Tabla_Final= read_xlsx("Data/Tabla_Final.xlsx")

Se modifica el nombre asignado para cada uno de los atributos de la base original, esto se hizo con el fin de facilitar la lectura de la información:

#Modificar nombre de los atributos:
names(Tabla_Final)[1]="Identificador"
names(Tabla_Final)[2]= "Tipo_Titulo"
names(Tabla_Final)[3]= "Nombre_Pelicula"
names(Tabla_Final)[4]= "Adulto"
names(Tabla_Final)[5]= "Año_Inicio"
names(Tabla_Final)[6]= "Duración_Pelicula"
names(Tabla_Final)[7]= "Genero"
names(Tabla_Final)[8]= "Rating"
names(Tabla_Final)[9]= "Numero_Votos"

Tabla_Final
## # A tibble: 168,978 x 9
##    Identificador Tipo_Titulo Nombre_Pelicula  Adulto Año_Inicio Duración_Pelicu~
##    <chr>         <chr>       <chr>             <dbl>      <dbl> <chr>           
##  1 tt0468569     movie       The Dark Knight       0       2008 152             
##  2 tt1375666     movie       Inception             0       2010 148             
##  3 tt0120737     movie       The Lord of the~      0       2001 178             
##  4 tt0167260     movie       The Lord of the~      0       2003 201             
##  5 tt0816692     movie       Interstellar          0       2014 169             
##  6 tt1345836     movie       The Dark Knight~      0       2012 164             
##  7 tt0167261     movie       The Lord of the~      0       2002 179             
##  8 tt1853728     movie       Django Unchained      0       2012 165             
##  9 tt0372784     movie       Batman Begins         0       2005 140             
## 10 tt0361748     movie       Inglourious Bas~      0       2009 153             
## # ... with 168,968 more rows, and 3 more variables: Genero <chr>, Rating <dbl>,
## #   Numero_Votos <dbl>

Descripción de los datos:

Para el análisis de los datos actualmente cuenta con 168.878 datos y 9 atributos, a continuación se describe la información que contiene:

En la siguiente tabla se puede visualizar si las variables de la base de datos son cualitativas o cuantitativas:

Identificador Tipo_Titulo Nombre_Pelicula Año_Inicio Duración_Pelicula Genero Rating Numero_Votos
Cualitativa Cualitativa Cualitativa Cualitativa Cuantitativa Cualitativa Cuantitativa Cuantitativa

Limpieza de datos:

Nulos= 2.865
Registros_totales= 171.743

Porcentaje_nulos = (Nulos/Registros_totales*100)
Porcentaje_nulos
## [1] 1.66819

Actualmente, en la base de datos se tiene un registro de las películas que fueron lanzadas a partir del año 2000, en el siguiente gráfico se puede visualizar que del año 2000 al año 2019 los usuarios de IMBD estuvieron muy activos en las votaciones, esto cambia a partir del año 2020 justo cuando inicia la pandemia:

#Grafico de barras Año Lanzamiento/Número de votos
ggplot(data=Tabla_Final, aes(x=Año_Inicio,y=Numero_Votos)) + geom_bar(stat="identity")

Teniendo en cuenta que apartir del año 2019 se tienen datos atípicos por la pandemia, estas observaciones se eliminan, siendo un total de 25.221 datos:

#Filtro Tabla_Final del año 2000 al año 2019 (por la pandemia)

Data_Final= Tabla_Final %>%  filter(Año_Inicio>=2000&Año_Inicio<2019)

Finalmente quedamos con la información del año 2000 al año 2019, con un total de 143.757 observaciones.

Análisis descriptivo

Para realizar la proyección de género más votado por los usuarios de la plataforma, es importante saber que les gusta hoy en día y para esto partiremos de la siguiente hipótesis:

“El género de acción, aventura y ciencia ficción es el género más votado en IMBD”, ¿sera este el género más votado por los usuarios de la plataforma? Para responder a esta pregunta se seleccionan los siguientes variables para el análisis descriptivo del problema:

Data_nueva= Data_Final %>% select(Genero,Numero_Votos)
datatable(Data_nueva)
## Warning in instance$preRenderHook(instance): It seems your data is too big
## for client-side DataTables. You may consider server-side processing: https://
## rstudio.github.io/DT/server.html

A continuación voy a agrupar y ordenar la base de datos por géneros para identificar el top 5 de los más votados por los usuarios de la plataforma:

Top5_generos = Data_nueva %>% group_by(Genero) %>% summarize(Promedio_votantes = sum(Numero_Votos)) %>%
arrange(desc(Promedio_votantes))

Géneros seleccionados:

generos_seleccionados=c("Action,Adventure,Sci-Fi","Adventure,Animation,Comedy","Comedy,Drama,Romance","Action,Crime,Drama","Drama")

Data_Top5_generos= Data_nueva%>% filter(Genero %in% generos_seleccionados)

datatable(Data_Top5_generos)
## Warning in instance$preRenderHook(instance): It seems your data is too big
## for client-side DataTables. You may consider server-side processing: https://
## rstudio.github.io/DT/server.html

La hipótesis es correcta siempre y cuando la suma de los votos del género Action,Adventure,Sci-Fi sea mayor a los demás géneros del top 5. Para confirmar esto se agruparon los géneros del top 5 y se sumaron los votos totales obtenidos por cada uno, también se calculó el promedio de votos para cada categoría:

Votos_Genero_ = Data_Top5_generos%>% group_by(Genero) %>% 
  summarize(Suma_votacion= sum(Numero_Votos)) %>% 
  mutate(Promedio_votacion= round(Suma_votacion/119481869*100,2))%>% 
  arrange(desc(Suma_votacion))
datatable(Votos_Genero_)
sum(Votos_Genero_$Suma_votacion)
## [1] 119481869

La suma total de votos de los géneros más votados por los usuarios es de 119.481.869 de los cuales un 32,16% de los votos corresponde al género de acción, aventura y ciencia ficción, rebasando a las demás categorías, por lo tanto, esto confirma mi hipótesis y efectivamente el género acción, aventura y ciencia ficción es el más votado por los usuarios de IMBD:

ggplot(Votos_Genero_,mapping = aes(x="",y=Promedio_votacion, fill=Genero))+
  geom_bar(stat = "identity",color="white")+
  geom_text(aes(label=Promedio_votacion),
              position=position_stack(vjust=0.5),color="white",size=6)+
  coord_polar(theta = "y")

La votación total obtenida por el género acción, aventura y ciencia ficción fue de 338.420.949, mientras que los otros 4 géneros tienen una votación promedio de 23896374:

generos_seleccionado= c("Adventure,Animation,Comedy","Comedy,Drama,Romance","Action,Crime,Drama","Drama")

Data_Top5_gener= Data_nueva%>% filter(Genero %in% generos_seleccionado)

mean(Votos_Genero_$Suma_votacion)
## [1] 23896374
#Barras con número de votos:
ggplot(data=Votos_Genero_, aes(x=Genero,y=Suma_votacion)) + geom_bar(stat="identity", position="stack")+
  theme(axis.text.x=element_text(angle=90, hjust=1))

CONCLUSIONES: